Vehicle leveling assembly

ABSTRACT

A leveling assembly for analyzing the attitude of a structure such as a motor vehicle in two axes. The assembly drives leveling devices on the structure to correct the attitude of the structure relative to a calibrated reference point or attitude. The assembly includes a controller connected to the leveling devices and a proportional two-axis tilt sensor that is connected to the controller and supported on the structure. The tilt sensor provides analog signals to the controller that represent the attitude of the structure about longitudinal pitch and lateral roll axes. The controller also uses those signals to determine the attitude of the structure relative to a calibrated sensitivity factor and a user-defined zero point. This allows an operator or installer to determine which portion of the structure will be leveled without regard to the location of the tilt sensor and allows an installer to mount the tilt sensor at any point on the structure.

This patent application claims the benefit of provisional applicationU.S. Ser. No. 60/157,310 filed Oct. 1, 1999.

TECHNICAL FIELD OF THE INVENTION

This invention relates generally to a motor vehicle leveling assembly,and, more particularly, to such an assembly that analyzes the attitudeof a motor vehicle in two axes and uses leveling devices to correct thevehicle attitude to a relative reference attitude.

INVENTION BACKGROUND

The prior art includes automatic motor vehicle leveling systems; atleast one of which requires only a single switch actuation to level anautomotive vehicle such as a recreation vehicle (RV). Automatic levelingsystems generally include some type of controller that extends andcontracts each of a plurality of levelers until at least a portion ofthe vehicle is level. In most systems there are four levelers or “jacks”typically mounted adjacent the four corners of a vehicle, respectively.

For example, U.S. Pat. No. 5,143,386 issued Sep. 1, 1992 to Uriarte,discloses a motor vehicle leveling assembly including an automaticleveling system that includes a controller that selectively extends andcontracts four jacks located adjacent the four corners of a vehicle. Thecontroller includes a proportional tilt sensor that provides outputsignals corresponding to the degree of tilt of separate axes extendingbetween the jacks. The controller responds to the output signals byenergizing the jacks to extend or contract independently at a rateproportional to the tilt along the respective axes. The controller canalso energize at least two of the jacks to extend or contractsimultaneously to increase the speed of leveling. The Uriarte assemblylevels a vehicle by first sensing the degree of vehicle tilt along apair of diagonal axes that are disposed parallel to lines that extendthrough diagonally opposite jacks. At least two jacks are thensimultaneously and independently expanded in response to outputs fromsensors at the lowest corners of the vehicle. The controller expands thejacks at a rate proportional to the degree of tilt in their respectiveaxes as indicated by the output of the tilt sensor.

However, a leveling system constructed according to the Uriarte patentis unable to tailor jack extension rates to respond to vehicle dynamics,cannot measure jack extension without relying on inputs from sensorslocated in the jacks, and cannot determine vehicle attitude change speedwithout measuring individual jack extension and contraction. The Uriartesystem is also not designed to control tilt rate by changing jack driverates dynamically and cannot change the jack drive rates based uponinputs other than tilt angle. The Uriarte leveler also cannotautomatically select between alternative jack grounding procedures basedon vehicle conditions (initial attitude of vehicle) and cannot determinejack ground contact without discrete pressure sensors. Uriarte also didnot contemplate automatic selection between alternative levelingalgorithms based on vehicle and ground conditions. Neither does theUriarte system level in pairs parallel to longitudinal pitch and lateralroll (rather than diagonal) vehicle axes. The Uriarte system also lacksa means for maximizing signal stability based on rate of angular changeand estimated signal noise. The Uriarte leveling system also does notallow an operator a choice between fully automatic and semi automaticleveling operations and includes no provision to automatically correctlong term vehicle attitude changes that occur after initial leveling iscomplete. Still further, the Uriarte system is only able to accuratelylevel whatever portion of the vehicle is supporting the tilt sensor.

What is needed is an improved motor vehicle leveling assembly thatovercomes the shortcomings of prior art leveling systems.

SUMMARY OF THE INVENTION

A leveling assembly is provided for analyzing the attitude of astructure such as a motor vehicle in two axes and using leveling devicesto correct the attitude of the structure relative to a calibratedreference point or attitude. The leveling assembly includes a controllerconfigured to connect to the leveling device and a proportional two-axistilt sensor connected to the controller. The tilt sensor is configuredto be supported on the structure to be leveled and to provide analogsignals to the controller representing the degree of longitudinal pitchand lateral roll of the structure the sensor is connected to. Thecontroller is additionally configured to receive and use those signalsto determine the attitude of the structure relative to a calibratedsensitivity factor and a user-defined zero point. This allows anoperator or installer to determine which portion of the structure willbe corrected to a predetermined attitude (such as level) relative togravity without regard to the location of the tilt sensor and allows aninstaller to mount the tilt sensor at any point on the structure.

According to another aspect of the invention, a method is provided foranalyzing the attitude of a structure relative to two axes. The methodincludes providing a structure to be leveled that includes a first setof at least two levelers and a second set of at least two levelersactuable to level the structure relative to a calibrated referenceattitude. A leveling assembly is also provided that includes a tiltsensor supported on the structure to be leveled. It is then determinedwhether the structure is in an initial attitude that is within aninitial allowable range of attitudes from which the levelers will beable to level the structure. All the levelers are then retracted and oneof the first and second sets of levelers is extended it contacts theground. The other set of levelers is then extended until it alsocontacts the ground. Each individual leveler is then extended in apredetermined order until each leveler is applying a predeterminedminimum force value to the ground. It is then determined about which ofthe two axes the structure is most out of level and each individualleveler is extended in a predetermined order until the structure islevel about that axis. The individual levelers are then extended apredetermined order until the structure is level about the other of thetwo axes.

According to another aspect of the invention, a method is provided formaintaining a structure in a level attitude after initial leveling ofthe structure where levelers capable of leveling the structure aremounted on the structure. The method includes providing a levelingassembly on the structure and monitoring the attitude of the structureby monitoring signals from a tilt sensor of the leveling assembly. Thestructure is then leveled by actuating the levelers in response tosignals from the tilt sensor that indicate an out-of-level attitude ofgreater than a predetermined magnitude has existed for longer than apredetermined period of time.

According to another aspect of the invention, a method for analyzing theattitude of a structure relative to two axes is provided that includesproviding a structure to be leveled that includes first and second setsof levelers actuable to change the attitude of the structure relative toa calibrated reference attitude. A leveling assembly is then provided onthe structure and it is determined whether the structure is in aninitial attitude that is within an initial allowable range of attitudesfrom which the levelers will be able to level the structure. Thelevelers are then retracted and one set of levelers is extended until itcontacts the ground. The other set of levelers is then extended until itcontacts the ground. The levelers are then extended individually, in apredetermined order, until each leveler is applying a predeterminedminimum force value to the ground. It is then determined which of thetwo axes need to be leveled and an operator is provided with a visualindication of the axes about which the structure is out-of-level. It isthen determined about which of the two axes the structure is mostout-of-level and the operator is provided with a visual indication of afirst axis about which the structure is most out-of-level. The structureis then leveled about the first axis by operating appropriate levelersin response to an operator input. If the structure is also out-of-levelabout the remaining axis, the structure is leveled about that axis byoperating appropriate levelers in response to an operator's input.

According to another aspect of the invention, a method is provided forcalibrating a leveling assembly to recognize when a structure theassembly is installed on is level relative to gravity. This methodincludes providing a structure to be leveled that includes levelersactuable to change the attitude of the structure. A leveling assembly isprovided on the structure and includes a controller and a tilt sensor.The controller is programmed to include a zero mode in which thecontroller is ready to receive a signal that will instruct thecontroller to recognize signal values being received from the tiltsensor as indicating that the structure is level. A level indicator isprovided at a desired location on the structure. The level indicator isconfigured indicate when it is level relative to gravity. The levelersare then actuated until the level indicator indicates that the levelindicator is level relative to gravity. An input is then provided to thecontroller indicating that the current set of signals being receivedfrom the tilt sensor is the set of signal values that will represent thecorrect attitude for the controller to reference in future levelingoperations.

BRIEF DRAWING DESCRIPTION

To better understand and appreciate the invention, refer to thefollowing detailed description in connection with the accompanyingdrawings:

FIG. 1A is a schematic pin-out diagram of an on-board microcontrollerincluded in the controller of a leveling assembly constructed accordingto the invention;

FIG. 1B is a continuation of FIG. 1A;

FIG. 2 is a schematic diagram showing circuitry that determinesretracted states of vehicle levelers used in the leveler assembly,additional circuitry that detects vehicle conditions that prompt thecontroller to alert a driver of the vehicle, and an audio and visualalert output of the leveling assembly;

FIG. 3 is a schematic diagram showing circuitry that latches in variousswitch inputs for transfer to the microcontroller of FIG. 1;

FIG. 4 is a schematic diagram showing a dual axis tilt sensor along withinterface circuitry for providing data from the sensor to themicrocontroller of FIG. 1 and a temperature compensation circuit;

FIG. 5 is a schematic diagram showing circuitry that drives LED outputsof the controller and also showing additional circuitry that drives theLED outputs for the controller;

FIG. 6 is a schematic diagram showing drive circuitry for the vehiclelevelers used on the leveling assembly;

FIG. 7 is a schematic diagram showing circuitry that supplies regulatedvoltage to the microcontroller of FIG. 1 and power to the drivecircuitry of FIG. 6;

FIG. 8A is a schematic diagram showing the connector pin-out for aleveler interface of the invention;

FIG. 8B is a schematic diagram showing circuitry for switches supportedon a leveler interface panel of the invention;

FIG. 8C is a schematic diagram showing circuitry for LED's supported onthe leveler interface panel;

FIG. 9 is a schematic diagram of a circuit board of the displayinterface;

FIG. 10 is a schematic front view of two alternative leveler interfacepanel configurations;

FIG. 11 is a software flowchart showing program steps for resetting thecontroller;

FIG. 12 is a software flowchart showing program steps for executing fivemodules of the main program;

FIG. 13 is a software flowchart showing program steps for managingmicrocontroller subsystems;

FIG. 14 is a software flowchart showing program steps for a module thatcontrols and samples external sensors;

FIG. 15 is a software flowchart showing program steps for aninput/output module of the main program;

FIG. 16 is a software flowchart showing program steps for a module thatdetermines tilt angle;

FIG. 17 is a state diagram showing a module that controls main programstate.

FIG. 18 is a state diagram showing a controller calibration mode;

FIG. 19 is a state diagram showing a “zero” mode of the controller;

FIG. 20 is a state diagram showing a “configure air dump” mode of thecontroller;

FIG. 21 is a state diagram showing a portion of the a leveler groundingsequence of the controller;

FIG. 22 is a state diagram showing the remainder of the levelergrounding sequence of FIG. 21;

FIG. 23 is a state diagram showing a semi-automatic leveling sequenceoption of the normal mode; and

FIG. 24 is a state diagram showing an automatic leveling sequence optionof the normal mode.

DETAILED DESCRIPTION OF INVENTION EMBODIMENT

A leveling assembly and method for analyzing the attitude of a platformor structure such as a motor vehicle in two axes and using levelers tocorrect the attitude of the structure relative to a calibrated referencepoint or attitude is shown in the drawings. While the embodimentdescribed below and shown in the drawings discloses the use of theleveling assembly in a recreational vehicle application, it is readilyadaptable to other leveling applications and may be installed on anysuitable structure for the purpose of leveling that structure.

As shown in FIG. 1, the assembly includes a “pitch and roll controlunit” (PRCU) 29 that includes a controller 30 configured to connect to aplurality of vehicle levelers or jacks. The controller 30 included inthe present embodiment is a Motorola MC68HC908AS60 microcontroller andthe software architecture described below is designed to specificallyreside with this microcontroller. However, in other embodiments, thearchitecture could easily be adapted to any equivalent microcontrollerhaving 2048 bytes RAM, 60 kilobytes ROM, a synchronous serialcommunications port (SPI), an asynchronous serial communications port(SCI), a programmable timer output compare interrupt and an 8-bit Analogto Digital Converter (ADC) with at least 2 channels. All control andprocessing is done by the on board microcontroller 30. Themicrocontroller 30 is programmed with software that contains algorithmsand control sequences for operating the leveling assembly in each of anumber of different modes. The microcontroller 30 actuates all levelers,sensor interfaces, display devices, etc. of the assembly.

The assembly also includes a Spectron SP proportional two-axis tiltsensor shown schematically at 32 in FIG. 4. The controller 30 tailorsjack extension rates to respond to vehicle dynamics and measures jackextension rates and vehicle attitude change speed using inputs from thetilt sensor 32. Unit sensitivity is calibrated at the factory for bothaxes according to the following equations:

X axis sensitivity=XX LSB/Degree where XX=the number of LSB's (# ofbits) as derived in the linear range of the tilt sensor (0-8 degrees) inthe x axis.

Y axis sensitivity=YY LSB/Degree where YY=the number of LSB's (# ofbits) as derived in the linear range of the tilt sensor 32 in the yaxis.

The sample rate of the tilt sensor 32 is done at each instant during runtime. The controller 30 will limit the speed at which the jacks areextending such that the rate of jack extension will not exceed theequivalent of {fraction (1/10)}th of a degree in 40 ms averaged over any100 ms period (moving window):

Filtered X or Y movement (LSB)/100 ms<0.25 degrees

The controller 30 also estimates the amount of resonant noise at thetilt sensor 32 after the hydraulics are stopped. The controller 30 willdelay any successive jack actuation until a 2.5 second period where theaverage variance in the sensor reading is <=0.0625 degrees.

The controller 30 also changes jack drive rates dynamically to controlthe tilt rate based upon inputs other than tilt angle. As expressed bythe following program step, if the amount of over or undershoot measuredis beyond a specific threshold the drive rate will be decreased:

IF (Filtered X or Y axis reading at “Level Stop”)−(Filtered X or Yreading prior to next jack actuation or end level)>Threshold . . .Decrease drive rate.

In the above step, “Level Stop” readings are part of the adaptiveprocess that indicates whether further changes are necessary for thenext level cycle, i.e., whether stop point accuracy can be furtherimproved.

In all cases drive rate is controlled by the following formula:

Drive rate=100 ms on+PWM Rate * 50 ms off

The PWM rate variable is controlled by the software.

As is described in greater detail below, the controller 30 automaticallyselects between two jack grounding procedures based on vehicleconditions, e.g., initial vehicle attitude, and is able to infer jackground contact from changes in tilt angle without using inputs fromdiscrete sensors.

The controller 30 levels a vehicle by extending the jacks in pairsparallel to longitudinal pitch and lateral roll vehicle axes. Thecontroller 30 detects and corrects the worst axis first when commencinga leveling operation—the worst axis being the axis around which thegreatest out-of-level condition exists.

The controller 30 also allows an operator to choose between fullyautomatic or semi-automatic leveling operations—both of which aredescribed in detail below. The PRCU 29 of the leveling assembly includesan interface panel, shown at 34 in FIG. 10, that allows a user to selectbetween an automatic and a semi automatic mode by pressing the AUTOswitch 36 or the SEMI switch 38, respectively. The microcontroller 30will select the correct leveling algorithm in response to switchactuation. In the automatic mode, the controller 30 automaticallycorrects long-term vehicle attitude changes that occur after leveling.The semi automatic mode differs only in that it requires that a userintervene to actuate the hydraulics through the interface panel.

The controller 30 employs adaptive filtering to maximize signalstability based on rate of angular change and estimated signal noise.Unlike other systems that extract data from a dual axis tilt sensor 32,an assembly constructed according to the illustrated embodiment will,through adaptive filtering, automatically change controller response tosensor outputs depending on the mode and conditions the controller 30sees. This allows the controller 30 to automatically manipulate sensoroutput in different ways to provide a desired result.

Adaptive filtering is accomplished by the controller 30 programmed witha software filter algorithm that functions as and can be thought of as abasic low pass filter. The order of the filter and the pole location ischanged depending on operational mode and noise. When the tilt sensor 32is attempting to detect ground contact during initial grounding of thelevelers as shown in FIGS. 21 and 22, the sensor 32 must be verysensitive to changes in movement. Therefore, it is important not to useup or “waste” the entire hydraulic stroke of one or more of the levelerswhile extending the levelers to contact the ground. In such a situation,the order is lowered and the frequency bandwidth is increased. However,when a leveling sequence is in progress and changes are occurring perthe predefined rate, accuracy becomes paramount and the signal is moreaggressively filtered.

When levelers are not being actuated (in an initialization mode) thecontinuous sensor reading is checked for the amount of noise that ispresent when there is no movement, i.e., “no movement” noise. If a lotof “no movement” noise is sensed, the initial filter value is increasedaccordingly.

Basic C programming code implementation for adaptive filtering is asfollows:

**ResultX and ResultY are raw tilt sensor readings. FilteredResultX andFilteredResultY are filtered versions of the ResultX and ResultYreadings obtained by sending the raw ResultX and ResultY sensor readingsthrough the dynamic filter. The dynamic filter gives stable informationat bandwidths optimized for controller performance.

// allow filter to cover a fraction of the distance to the new valueFilteredResultX−=FilteredResultX>>shift; **limits the amount the filtercan cover for any one sample.

FilteredResultX+=ResultX >>shift; **updates new value. Shift is equal toFilterlevel. Filterlevel is the filter order parameter of theimplemented digital filter as decided by the calling routine.Filterlevel determines frequency roll off and phase response.

// allow filter to cover a fraction of the distance to the new valueFilteredResultY−=FilteredResultY>>shift; ** same as above, but for yaxis readings.

FilteredResultY+=ResultY>>shift;

// calculate angle based on filtered results

LSBs=FilteredResultX;

LSBs−=GetXZero( );** gets value that the unit was zeroed to. GetXZero( )retrieves user-set reference value representing a level x axis.

LSBsPerDegree=GetLSBsPerDegreeX( )>>4; ** gets calibrated value forsensitivity and normalizes. LSBsPerDegreeX( ) retrievesfactory-calibrated sensor sensitivity value in the x axis.

result=LSBs/LSBsPerDegree; **calculates angle in {fraction (1/16)}thdegree increments.

if (result<=−127)

Xangle=−127; ** limits range of results; Xangle is the result ofconverting FilteredResultX to degrees from the zero point.

else if(result>127)

Xangle=127;

else

Xangle=result;

LSBs=FilteredResultY;** same as for X.

LSBs−=GetYZero( ); **GetYZero( ) retrieves user-set reference valuerepresenting a level y axis.

LSBsPerDegree=GetLSBsPerDegreeY( )>>4; ** LSBsPerDegreeY( ) retrievesfactory-calibrated sensor sensitivity value in the y axis.

result=LSBs/LSBsPerDegree;

if (result<=−127)

Yangle=−127;

else if (result>127)

Yangle=127;

else

Yangle=result; ** Yangle is the result of converting FilteredResultYinto units of degrees from the zero point.

//increase order of filter

Loop(for val) **val equals order of filter

FilteredXAngle−=FilteredXAngle>>shift; **filters values again

FilteredXAngle+=Xangle<<(8−shift);

FilteredYAngle−=FilteredYAngle>>shift; **val times

FilteredYAngle+=Yangle<<(8−shift);

During initial extension of the levelers at the beginning of a levelingoperation, to ensure a quick and robust leveling sequence, thecontroller 30 stops the levelers just after they contact and are firmlyengaged with the ground. The adaptive filtering algorithm allows thecontroller 30 to recognize ground contact by looking at specific outputcharacteristics received from the tilt sensor 32. The outputcharacteristics that the algorithm looks at are noise, rate of change,scale factor and temperature.

The adaptive filter algorithm allows an optimal extension sequence totake place and ensures the most reliable sensing of ground contact. Itdoes this by actuating and extending two levelers at a time until thecontroller 30 senses that the levelers have contacted the ground. Thecontroller 30 then actuates the remaining set of two levelers until thecontroller 30 senses that they have contacted the ground. In response toinitial ground contact of all the levelers, the adaptive filter isadjusted and the controller 30 extends each individual leveler, one at atime, until all four levelers are firmly grounded as shown in FIGS. 23and 24.

As is described above, the filter parameters are changed dynamically toallow a greater sensitivity and to limit excess leveler travel. Theorder and/or the filter frequency (sample rate and or shift #) isincreased. The filter frequency formula is as follows:

Frequency=1/6.28 * ((2{circumflex over ( )}shift−1) * sample rate)

Each software mode in the microcontroller 30 can selectively adjust thefilter to obtain optimal performance in response, stability, noiseimmunity, etc. The formulas are always the same as those describedabove. Different variables hold different filtered results and differentcoefficients depending on modes (note that an individual mode willadjust the filter).

The tilt sensor 32 is connected to the controller 30 and may be mountedat any point on a vehicle to be leveled. The tilt sensor 32 isconfigured to provide analog signals to the controller 30 representingthe degree of longitudinal pitch and lateral roll of a vehicle thesensor is connected to, and the controller 30 is configured to receiveand use those signals to determine vehicle attitude relative to acalibrated sensitivity factor and a user-defined zero point. Therefore,a motor vehicle leveler constructed according to the invention allows auser or installer to determine which portion of the vehicle will belevel relative to gravity despite the location of the tilt sensor 32.The tilt sensor 32 may, therefore, be located anywhere in the vehicle.The module that houses the tilt sensor 32 includes a “Front of Vehicle”label to allow an installer to properly orient the tilt sensor 32 in avehicle.

The tilt sensor 32 is used instead of limit type switches so that,instead of having the controller 30 wait for digital inputs thatindicate a level state, the tilt sensor 32 continuously supplies analogvalues to the controller 30. The tilt sensor 32 continuously suppliesanalog values to allow the controller 30 to calculate a positionrelative to a calibrated sensitivity factor and a user defined zeropoint as shown in FIG. 19. Only one point needs to be calibrated toensure proper operation. A unique software algorithm drives the sensorto achieve maximum stability and gain and to condition the sensorresults to achieve a stable output.

The tilt sensor 32 is temperature-compensated to ensure maximumresolution and stability over a wide range of temperature conditions.This is accomplished by the circuit shown at 44 in FIG. 4.

In normal operation, the system includes automatic and semiautomaticleveling modes. In both the automatic and the semiautomatic modes, theunit achieves and maintains a level attitude via a unique optimizedleveling algorithm which uses a preset relative zero value, a smartaxis-to-level algorithm, and subsequent auto correction feature. As ismore fully described below, the relative zero value is preset duringunit installation and is used by the controller 30 as a reference valuein a “smart zeroing” process. In presetting the relative zero value, anoperator or installer determines what tilt sensor 32 attitude thecontroller 30 will recognize as being a “zero (level) state”. Therelative zero value is then passed to an algorithm that decides how tooptimally level the vehicle, i.e., to achieve the zero state each timethe vehicle is subsequently leveled. The controller 30 determines anoptimum axis sequence that will achieve the zero state with the leastovershoot and leveler extension, then executes that sequence. Thecontroller 30 executes that sequence to level the vehicle eitherautomatically or semiautomatically. In the automatic mode, thecontroller operates the proper levelers according to the optimumsequence. In the semiautomatic mode, the controller indicates to anoperator the proper sequence in which to manually actuate the levers,according to the optimum axis sequence.

The system continuously monitors the attitude of the vehicle after eachleveling operation and continues to adjust the levelers as necessary toprevent the vehicle from being tipped out-of-level by such factors asvehicle settling, ground shift etc. The controller 30 continuouslymonitors analog values received from the tilt sensor and, relative tothe preset zero state, adjusts the adaptive filter algorithm, andautomatically adjusts the vehicle attitude after the vehicle hasremained in an out-of-level attitude for longer than a predeterminedminimum time period. As the vehicle approaches level and the controller30 senses that the tilt sensor 32 is approaching the preset zero state,the filter order is decreased and the response increased so that phasedelay is reduced. No individual leveler needs to be actuated during thissequence, only pairs of devices are activated at any one time.

In either fully automatic or semi-automatic mode, the controller 30 canalso dynamically change the rate at which the levelers are actuated.This allows the controller 30 to optimize the leveler extension rate tosuit any particular vehicle, surface condition, and/or output datacharacteristics of the sensor.

The fully automatic mode allows a user to initiate a leveling sequencewithout any further interaction. As shown in FIG. 24, the unitautomatically takes care of all output extensions, and levelingsequences. In a first automatic mode, or, automatic mode 1 (using thefirst of two leveling algorithms), the controller 30 first determineswhether the vehicle is in an initial attitude that is within an initialallowable range of attitudes from which the levelers will be able tolevel the vehicle (x and y axes must be<=+−3.0 degrees from zero point).The initial condition is user programmable and can be set to accommodateany manufacturer's levelers. Based upon the allowable travel of theleveler, one can calculate the maximum amount of adjustment possible (indegrees) and program the unit accordingly. The Air Dump mode is thenactivated if the controller 30 was initially configured to do so whilein the air dump configuration mode during installation. (As is describedmore fully below, an installer will typically configure the controller30 for entering the air dump mode before each leveling sequence wheneverthe vehicle is equipped with suspension air bags that must be deflatedbefore leveling.) The controller 30 then retracts all the levelers andextends the front levelers until they contact the ground (The controller30 senses ground contact when it receives signals from the tilt sensor32 indicating a change in tilt angle of >=0.125 deg and <=0.250 deg).Each individual leveler is then extended in the order (LF, RF, RR, LR)until each leveler contacts the ground (Again, the controller 30 sensesground contact when it receives signals from the tilt sensor 32indicating a change in tilt angle of >=0.125 deg and <=0.250 deg). Thecontroller 30 then determines which axes need to be leveled (An LEDdisplay, shown at 46 in FIG. 10, indicates which axes are to be leveledby blinking the LEDs representing the axes to be leveled). Thecontroller 30 then activates the appropriate levelers in a predeterminedleveling sequence to adjust vehicle attitude until the vehicle is level.The proper outputs will be actuated as long as the user depresses theproper switch, i.e., the AUTO switch shown at 36 in FIG. 10. Thesoftware will also enable the controller 30 to detect when both axeshave been leveled within tolerance (+−0.25 degrees from zero point).

The attitude of a structure such as a motor vehicle may be automaticallymaintained in a level attitude after initial leveling by leaving theassembly in the automatic mode following a leveling operation. Left inthe automatic mode after leveling, the controller 30 will continue tomonitor signals from the tilt sensor 32 and will automatically actuateappropriate levelers to level the vehicle whenever vehicle attitudechanges by greater than a predetermined amount for longer than apredetermined period of time. (More specifically, the attitude changemust remain for greater than 15 minutes. This is because the controller30 includes a 5+−0.2 minute filter for each level state implementedbefore the controller 30 will command a correction.) In other words,after a vehicle has been automatically leveled, it takes fifteen minutesof continuous readings before the controller 30 will induce a change orcorrection. This feature prevents the controller 30 from entering acorrection sequence based on transitory events such as vehicle swaycause by wind or occupant movement, etc. The step of extending eachindividual leveler is repeated for any other axis that requires levelinguntil the vehicle has been leveled in all axes.

In step form, automatic mode 1 is executed as follows:

1) Determine if vehicle is within initial allowable range to level (xand y axis must be <=+−3.0 degrees from zero point)

2) Activate Air Dump if configured

3) Retract levelers

4) Extend front levelers until ground contact is established (PRCUdetects a change in tilt angle of >=0.125 deg, <=0.250 deg)

5) Extend each individual leveler in the order (LF, RF, RR, LR)extending each leveler until ground contact is established (PRCU detectsa change in tilt angle of >=0.125 deg, <=0.250 deg).

6) Determine which axes need to be leveled. Indicate via an LED 46 allaxes to be leveled. The LED 46 corresponding to the axis to be leveledfirst will be blinking. The unit will automatically activate the properaxis, thus preventing an incorrect leveling sequence. The software willalso detect when both axes have been leveled within tolerance (+−0.25degrees from zero point). The unit will automatically correct for anyshift in vehicle position for as long as the module is left in AutomaticMode. There is a 5+−0.2 minute filter for each level state implementedbefore correction is asserted. That is, after a vehicle has been leveledautomatically, it takes fifteen minutes of continuous readings in orderto induce a change/correction. This features eliminates the possibilityof the controller 30 entering a correction sequence based on transitoryevents such as wind, occupant movement, etc. Repeat step 5 for any otheraxis until vehicle is leveled in all axes.

7) Continue to monitor and update level displays. Monitor inputs andactuate proper outputs.

The attitude of a motor vehicle may be semi-automatically leveled to acalibrated reference attitude by engaging the semi-automatic mode of theleveler. As shown in FIG. 23, in a first semi-automatic mode,semi-automatic mode 1 (using the first leveling algorithm), thecontroller 30 will first determine whether the vehicle is in an initialattitude that is within an initial allowable range of attitudes fromwhich the levelers will be able to level the vehicle (x and y axes mustbe <=+−3.0 degrees from zero point). All the levelers are then retractedand the front levelers are extended until they contact the ground (Thecontroller 30 senses ground contact when it receives signals from thetilt sensor 32 indicating a change in tilt angle of >=0.125 deg and<=0.250 deg). Each individual leveler is then extended in the order (LF,RF, RR, LR) until each leveler contacts the ground (Again, thecontroller 30 senses ground contact when it receives signals from thetilt sensor 32 indicating a change in tilt angle of >=0.125 deg and<=0.250 deg). The controller 30 then determines which axes need to beleveled and LED's 46 representing those axes are illuminated. It is alsodetermined which axis of those that need to be leveled should be leveledfirst and the LED's 46 representing that axis are caused to blink. Thelevelers required to level the vehicle in that axis are then operated inresponse to an operator input (The controller 30 provides the properoutputs to the levelers as long as the user holds down the properswitch). An operator, having observed the blinking LED's, provides thenecessary input by actuating a switch 48 corresponding to the blinkingone of the LED's 46. In response to this switch actuation, thecontroller commands the corresponding levelers (the levelers required tolevel the vehicle in that axis) to extend. Switches corresponding toother levelers are disabled to prevent an operator from operating thewrong levelers. The controller 30 is also configured to detect when allaxes have been leveled within tolerance (+−0.25 degrees from zero point)and will disable the input from the operator-actuated switch to preventuser overshoot. The above steps following and including the step ofdetermining which axis should be leveled, are repeated until the vehiclehas been leveled in all axes.

In step form, semiautomatic mode 1 is executed as follows:

1.) Determine if vehicle is within initial allowable range to level (xand y axis must be <=+−3.0 degrees from zero point)

2.) Retract levelers

3.) Extend front levelers until ground contact is established (PRCUdetects a change in tilt angle of >=0.125 deg, <=0.250 deg)

4.) Extend each individual leveler in the order (LF, RF, RR, LR)extending each leveler until ground contact is established (PRCU detectsa change in tilt angle of <=0.125 deg, <=0.250 deg)

5.) Determine which axes need to be leveled. Indicate via a LED all axisto be leveled. The axis to be leveled first will be blinking. The unitwill not allow any input other than the blinking one, to be activatedthus preventing an incorrect leveling sequence. The proper outputs willbe actuated as long as the user holds down the proper switch. Thesoftware will also detect when the active axis has been leveled withintolerance (+−0.25 degrees +−hysterisis from zero point) and disable theswitch input to prevent user overshoot.

6.) Repeat step 5 for any other axis until vehicle is leveled in allaxis.

7.) Continue to monitor and update level displays. Monitor inputs andactuate proper outputs.

8.) There is a 5+−0.2 minute filter for each level state implementedbefore correction \ update is allowed.

In a second automatic mode, automatic mode 2 (using the second levelingalgorithm), the controller 30 will first determine if the vehicle is inan initial attitude that is within an initial allowable range ofattitudes from which the levelers will be able to level the vehicle (xand y axes must be <=+−3.0 degrees from zero point). Air dump is thenactivated if the controller 30 is so configured. All the levelers arethen retracted. At this point, the controller 30 determines whether toexecute the second algorithm (automatic mode 2) according to whether thevehicle is tilted in the y-axis (Front-Back, about the x-axis) such thatit needs to be leveled beyond a defined threshold amount. If the vehicleis tilted beyond the threshold amount, the controller 30 executes thesecond algorithm. If not, the controller 30 executes the firstalgorithm, described above. The controller 30 executes the secondalgorithm by first commanding the levelers at the low end of the vehicle(front or the rear) to extend together until at least one makes groundcontact (PRCU detects a change in tilt angle of >=0.125 deg, <=0.250deg). The controller 30 then commands the low end levelers to extendindividually in the order (L, R) until the other of the low end levelershas contacted the ground (PRCU detects a change in tilt angle of >=0.125deg, <=0.250 deg). The controller 30 indicates which axis is to beleveled by commanding a corresponding LED to blink. The low end ofvehicle is raised to level by extending the grounded low-end levelers.The controller 30 software detects when the selected axis has beenleveled within tolerance (+−0.25 degrees from zero point). The remaininglevelers are then grounded and any remaining out-of-level condition isdetected and corrected. The process is repeated for any other axis thatmight require leveling until the vehicle is leveled in both axes.

As with automatic mode 1, after leveling, the controller 30 continues tomonitor and update level displays, to monitor inputs and to actuateproper outputs according to the first algorithm. The unit willautomatically correct for any shift in vehicle position as long as thecontroller is left in the automatic mode. There is a 5 +−0.2 minutefilter for each level state implemented before correction is asserted.That is, after a vehicle has been leveled automatically, it takesfifteen minutes of continuous readings in order to induce achange/correction. This feature eliminates the possibility of thecontroller 30 entering a correction sequence based on transitory eventssuch as wind, occupant movement, etc.

In step form, automatic mode 2 is executed as follows:

1) Determine if vehicle is within initial allowable range to level (xand y axis must be <=+−3.0 degrees from zero point)

2) Activate Air Dump if configured

3) Retract levelers

4) Determine if the vehicle needs to be leveled in the y-axis(Front-Back) beyond a defined threshold. If so, go to step 5

5) Extend low end (front or back) levelers (as determined in 4) togetheruntil ground contact is established (PRCU detects a change in tilt angleof >=0.125 deg, <=0.250 deg)

6) Extend each low end leveler individually (in the order LF, RF or LR,RR) until both have contacted the ground (PRCU detects a change in tiltangle of >=0.125 deg, <=0.250 deg)

7) Level the low end (front or back) of the vehicle. Indicate via an LED46 which axes need to be leveled. The axis to be leveled first will beblinking. The unit will automatically activate the proper axis, thuspreventing an incorrect leveling sequence. The software will also detectwhen both axes have been leveled within tolerance (+−0.25 degrees fromzero point).

8.) Ground remaining axis hydraulics.

9.) Detect level condition in both axes and level per algorithm 1. Theunit will automatically correct for any shift in vehicle position aslong as the module is left in Automatic Mode. There is a 5+−0.2 minutefilter for each level state implemented before correction is asserted.In other words, after a vehicle has been leveled automatically, it takesfifteen minutes of continuous readings in order to induce achange/correction. This features eliminates the possibility of thecontroller 30 entering a correction sequence based on transitory eventssuch as wind, occupant movement, etc. Repeat step 5 for any other axisuntil vehicle is leveled in all axes.

10) Continue to monitor and update level displays. Monitor inputs andactuate proper outputs.

Semiautomatic mode 2 (using the second leveling algorithm) is the sameas automatic mode 2 except that the user must depress the correspondingblinking LED 46 at the appropriate time to level each active axis.

In either the automatic or the semi automatic mode, the controller 30automatically selects between the two alternative leveling algorithmsdescribed above based on vehicle conditions, e.g., initial vehicleattitude. When the vehicle is tilted significantly in the fore-aftdirection (about the x axis), the controller 30 selects the secondalgorithm to reduce the amount of leveler stroke/extension used upduring the leveling process. The “long” axis (y axis) is leveled first(about the x axis) because vehicles are generally longer than they arewide and front and back levelers are generally spaced longitudinallyfrom the road wheels. As a result, the extension of levelers at the lowend of the vehicle causes vehicle to rotate about the roadwheelsadjacent the high end of the vehicle and causes the overhanging high endof the vehicle to lower. Because they are starting from a lowerposition, the levelers at the high end of the vehicle need not extend asfar to reach the ground than they would had they been lowered before orat the same time as the levelers at the low end of the vehicle.

Along with the zeroing mode described generally above, the levelingassembly also includes a calibration mode, a “configure air dump” modeand a diagnostic mode. As shown in FIG. 18, the calibration mode allowsthe assembly to be calibrated to recognize when a vehicle it isinstalled on is level relative to gravity. This is done after installingthe controller 30 or “main unit”, the tilt sensor 32 and the interfacepanel unit 34 and all associated wiring in the vehicle. An installerthen applies power to the controller 30 and confirms that the controller30 is in an initial “zero mode”.

In the zero mode, as shown in FIG. 19, the controller 30 is ready toreceive a signal that will instruct it to recognize whatever analogsignal values it is currently receiving from the tilt sensor 32 asrepresenting a level condition for the vehicle. In the Zero Mode, all ofthe LED's 46 disposed on the leveler interface panel 34 are on andflashing. A pair of temporary bubble levelers or another suitable typeof level indicator is then installed at a desired location on thevehicle that is in line with both leveling axes. The individual levelersare then extended to establish ground contact. The installer monitorsthe temporary level indicators while actuating pairs of the levelers ina predetermined order to achieve a desired vehicle attitude (the desiredattitude need not be level but will be referred to as a “level”condition as that is the most likely scenario for most foreseeableapplications). After 30 seconds have elapsed a retract switch on theinterface panel unit is actuated 3 times to signal the controller 30 toset a new “zero point”, i.e., to establish for future recognition a setof tilt sensor signal values that the controller 30 will recognize asindicating a level condition. Once the controller 30 has set a “zeropoint” as described above, it cannot reenter zero mode unless done usinga diagnostic tool that is connected to the controller 30 via an “RS232interface”. From this point on, all leveling is done relative to thepreset zero value. It is therefore possible to optimize the levelcondition at any one location regardless of the attitude of the rest ofthe vehicle and the location of the tilt sensor 32. In addition, theleveling assembly is a two unit system that allows an installer tolocate the sensing portion of the electronics, i.e., the tilt sensor 32,separate from the pitch and roll control unit 29 that, as stated above,includes the display interface 34 and the controller 30.

While in zero mode, this system will allow manual activation of thelevelers to set the vehicle to any particular zero state. Thisactivation does not interfere with the zero mode calibration procedureand is available to the user any time before commanding the system toset the active zero point.

Once the assembly has been calibrated to recognize when the vehicle islevel, the controller 30 enters a “configure air dump” mode as shown inFIG. 17. The default for the unit is for the air dump mode NOT to beconfigured. An installer will have 20 seconds to configure the modulefor air dump by actuating a “retract” switch, shown at 52 in FIG. 10,three times in succession. If, at the end of the 20 seconds, the retractswitch 52 on the interface panel has not been actuated 3times, themodule will be configured to NOT activate air dump. If the retractswitch 52 has been actuated 3 times within 20 seconds of entering theconfiguration mode, the controller 30 will be configured to enter airdump mode for 30.0+−0.5 seconds prior to leveler extension. Whenever airdump is active, a corresponding LED shown at 54 in FIG. 10 illuminateson the interface panel.

This leveling assembly includes self-diagnostics and will prevent theassembly from operating if unit integrity cannot be guaranteed.Diagnostics are stored in on-board non-volatile memory in the controller30.

The assembly also contains a PC-compatible diagnostic interface thatallows a PC to query the controller 30 for active and stored faults andto allow an authorized user to place the system in any operational modeand download all functional and operational parameters in real time. Theassembly may also be put into a diagnostic mode when connected to an IDSdiagnostic tool. In the diagnostic mode, certain functional parameterscan be modified. This allows an operator to configure the unit on a pervehicle basis. Modifiable parameters include the off period of solenoiddrivers, level algorithm hysteresis, shift of delta in the filteredreading and current reading, and the value of tilt angle that representstrue movement of the vehicle used to establish ground contact oflevelers.

As shown in FIG. 6, drive circuitry of the leveling assembly allows forany type of high side load to be driven. There are 10 general purposeoutputs available to switch high side voltage to any of a variety ofdevices. The system can be configured to drive these outputs in anymanner and in any sequence. The outputs are totally scalable and can beconfigured to drive as many as 20 outputs. The outputs are fullydiagnosable and have the ability to go into a “self-protect” modeautomatically. These outputs can be dynamically programmed to drive anyconfigured load. In the case of RVs, the air dump output is just such anexample. On vehicles where this option is not necessary, the unit can beconfigured to ignore the output driver and all associated software flowrelated to this feature.

The leveling assembly includes features that make the entire levelingand driving process more “error free”. For example, the controller 30will automatically sense the state of the levelers and take action whena vehicle driver tries to move the vehicle without fully retracting thelevelers. The controller 30 responds by activating an audible warningand by inhibiting further leveler operation until the vehicle ignitionis turned off.

The leveling assembly may also include a light sensor for sensing thegeneral lighting conditions. When a light sensor is included in theassembly, the controller 30 is programmed to automatically brighten theilluminated displays when ambient lighting conditions are high and toautomatically darken the displays when ambient lighting is low.

Circuitry for determining the retracted states of the levelers is shownin FIG. 2. Additional circuitry is present to detect vehicle conditionsthat should have a driver alert asserted. This can be any combination ofthe inputs listed on the schematic. All outputs are sent to themicrocontroller 30 for additional manipulation and use in the controlalgorithms.

The circuitry to present the switch inputs to the microcontroller 30 isshown in FIG. 3. Each input latch can accommodate up to 8 digitalinputs. Latches can be daisy-chained so that the total number of inputsis scaleable up to 32 inputs. The microcontroller 30 input algorithmsamples the inputs periodically and filters the raw inputs to providethe rest of the control algorithms meaningful information regarding thestatus of each input. Each input has a separate property in the softwarethat allows independent configuration, filtering and sampling allowing avariety of digital devices to be connected seamlessly to the system.

Referring to FIG. 3, a low-to-high transition on “Data_Latch” will causethe external data to be loaded into the data latch. If “Switch_CS” isalso low, the data will also be loaded into the shift register. When“Switch_CS” is low, the parallel data in the data latch is loaded intothe shift register and serial shifting is inhibited. When “Switch_CS” ishigh, serial shifting is enabled.

Again referring to FIG. 3, in normal mode, “Switch_CS” is low,“Data_Latch” is low and “-Switch_OE” is high. For serial transfer,“Data_Latch” is driven high, “Data_Latch” is driven low, “Switch_CS” and“-Switch_OE” are driven low, serial transfer is conducted to get all 8bits, then “Switch_CS” and “-Switch_OE” are driven high.

The dual axis tilt sensor 32 and the appropriate analog to digitalconverter hardware are shown in FIG. 4. The sensor is driven in a uniquemanner that allows enhanced sensitivity, response and noise immunity.Sensor sample rate is adjusted to allow optimal filtering response. Thesample rate of the sensor effects the performance of the tilt sensor 32as well, e.g., tilt sensor 32 start up time, stability, and drift.Initial values and limits are calibrated at production time and theadaptive algorithms use the values and limits to optimize performance.The software can vary sample rate, electrode on-time and electrodeoff-time.

The software dynamically-adjusts, as described above, to sample thesensor in the appropriate manner depending on which operating mode thesystem is in.

The circuitry used to drive the PC communication interface and the audioalert output is shown in FIG. 5. The communication protocol is developedespecially for these types of embedded systems and allows the unit tocommunicate with a PC.

Referring to FIG. 5, on low-to-high transition of “LED_Latch”, thecontents of the shift register are transferred to the output latch. Innormal mode, “LED_Latch” is low. For serial transfer, 8 bit serialtransfer is conducted then “LED_Latch” is driven high, then “LED_Latch”is driven low.

The circuitry necessary to drive the LED outputs is shown in FIGS. 6 and9. This circuitry is also scaleable to accommodate up to 32 outputs.Standard outputs drive mode indicators 56, 58 and a level statusannunciator 59. The mode indicators 56, 58, level status annunciator 59and membrane switches 36, 38, 48, 52, 57 for operating the levelingassembly are supported on an interface panel shown in FIG. 10.

The circuitry to drive the high side loads is shown in FIG. 7. Any loadrequiring high side drive can be used with this system as long as thecurrent requirements do not exceed the component rating. The outputdrivers are controlled by software algorithm that determines optimumdrive rate to ensure that a desired level of accuracy for the levelingprocess can be achieved. The outputs also feedback their diagnosticstatus to the microcontroller 30 which can use those inputs for faultdetection and drive correction.

The circuitry that supplies regulated voltage to the microcontroller 30and power to the output load drivers is shown in FIG. 8. Reverse batteryprotection is also included.

Software execution and decision steps for resetting the controller 30and for executing five modules of the main program are shown in FIGS. 11and 12, respectively.

Steps for managing microcontroller 30 subsystems are shown in FIG. 13.The execution step shown at 60 relates to SCI peripheral operation, theexecution step shown at 62 handles diagnostic and configuration commandsand the execution step shown at 64 ensures that calibration is alwaysstored in non-volatile RAM.

Steps for a module that controls and samples external sensors are shownin FIG. 14. The decision step shown at 70 ensures that changes tosignals driving external sensors are spaced exactly 500 microsecondsapart plus or minus an adjustment value.

Steps for an input/output module of the main program are shown in FIG.15. The decision step shown at 72 ensures that the controller 30 samplesinputs exactly once every 25 milliseconds, plus or minus an adjustmentvalue. In accordance with the execution step shown at 74, all activeLED's may blink as blinking is accounted for at this stage. The finalexecution block in this module, shown at 76, commands the controller 30to “drive hydraulic outputs according to last requested command”. In sodoing, all active hydraulic outputs are driven at a pulse-widthmodulated (PWM) duty cycle calculated from real-time feedback in themain state control algorithm.

Steps for a program module that determines tilt angle are shown in FIG.16. The decision step shown at 78 causes the controller 30 to wait untilthe external tilt sensor 32 has acquired new data to process. As shownin the execution step shown at 80, tilt angle is proportional to avoltage difference across the tilt sensor 32.

As shown in the execution step shown at 82, sensor filtering is dynamicand allows real-time feedback according to system response. At varioustimes, when the unit is either at rest or in motion, the controllerestimates a signal to noise ratio from the output of the tilt sensors.When the ratio is small, i.e., the noise level is high, the filtercoefficients are increased. When the noise is low, the filtercoefficients are decreased which makes the unit more responsive tochanges.

According to the execution step shown at 84, raw sensor readings ResultXand ResultY are filtered using an ideal RC filter that is implementedvia software. The execution step shown at 86 determines the actual tiltof the tilt sensor 32 in X and & axes.

Execution steps for a module that controls main program state are shownin FIG. 17. As shown, the controller 30 enters the calibration mode fromthe main program state control module and proceeds to the normal modefollowing a valid EEPROM calibration, sensitivity calibration, zeropoint calibration and air-dump configuration (either on or off). Theflowchart of FIG. 18 details software execution steps for thecalibration mode after an invalid EEPROM calibration. The flowcharts ofFIGS. 19 and 20 show software execution steps for the “zero” and“configure air dump” modes, respectively.

FIG. 21 is a flowchart depicting execution steps for the normal(automatic or semi-automatic) mode of the controller 30 from mode entrythrough extension of front hydraulics to initially ground the frontlevelers. FIG. 22 is a continuation of the leveler grounding sequence ofFIG. 21. Details of software execution and decision steps for thesemi-automatic and automatic leveling sequence options of the normalmode are shown in FIGS. 23 and 24, respectively.

This is an illustrative description of the invention using words ofdescription rather than of limitation. Obviously, many modifications andvariations of this invention are possible in light of the aboveteachings and one may practice the invention other than as described.

What is claimed is:
 1. An assembly for correcting the attitude of anyselected portion of a structure, the assembly comprising: a controllerconfigured to connect to and control one or more jacks operable tochange the attitude of a structure; and a proportional two-axis tiltsensor connected to the controller and configured to be supported on thestructure, the tilt sensor being configured to provide analog signals tothe controller, which represent the degree of longitudinal pitch andlateral roll of the portion of the structure the sensor is supported on,the controller being additionally configured to move a selected portionof the structure into a desired attitude by commanding movement of theentire structure into an attitude where the tilt sensor signals match apre-selected reference value corresponding to the desired attitude ofthe selected portion of the structure, thereby allowing any portion ofthe structure to be corrected to any desired attitude within a range ofattitudes despite the location of the tilt sensor and allowing the tiltsensor to be located anywhere in the structure.
 2. An assembly asdefined in claim 1 in which the controller is configured to change driverates of the jacks based upon inputs other than tilt angle.
 3. Anassembly as defined in claim 1 in which the controller is configured totailor drive rates of the jacks to respond to structural dynamics.
 4. Anassembly as defined in claim 1 in which the controller is configured tochange drive rates of the jacks dynamically to control an attitudecorrection rate of the structure.
 5. An assembly as defined in claim 1in which the controller is configured to measure jack drive rates andattitude change speed of the structure using inputs from the tiltsensor.
 6. An assembly as defined in claim 1 in which the controller isconfigured to automatically select between different jack groundingprocedures, the selection being based on conditions of the structure. 7.An assembly as defined in claim 1 in which the controller is configuredto infer jack ground contact based on dynamic information received fromthe tilt sensor and indicating jack loading.
 8. An assembly as definedin claim 1 in which the controller is configured to automatically selectbetween alternative leveling algorithms, the selection being based onconditions of the structure.
 9. An assembly as defined in claim 1 inwhich: the assembly includes at least two pairs of jacks supported onthe structure; and the controller is configured to correct the attitudeof a structure by extending the jacks in pairs parallel to longitudinalpitch and lateral roll axes of the structure.
 10. An assembly as definedin claim 1 in which the controller is configured to detect and correctwhichever of the pitch and roll of the structure requires the mostcorrection to move the structure into a desired attitude.
 11. Anassembly as defined in claim 1 in which the controller is configured tomaximize signal stability by employing adaptive filtering based on rateof angular change and estimated signal noise.
 12. An assembly as definedin claim 1 in which the controller is configured to allow an operator tochoose between fully automatic or semi automatic attitude correctionoperations.
 13. An assembly as defined in claim 1 in which thecontroller is configured to automatically correct long-term attitudechanges that occur after attitude correction.
 14. An assembly foranalyzing the attitude of a structure and operating jacks that extendfrom the structure to contact a support surface before changing theattitude of the structure and are further selectively extended tocorrect the attitude of the structure relative to a calibrated referenceattitude, the leveling assembly comprising: a controller configured toconnect to the jacks; a tilt sensor connected to the controller andconfigured to be supported on the structure, the tilt sensor beingconfigured to provide signals to the controller representing theattitude of the structure, the controller being additionally configuredto receive and use those signals to initially ground the jacks and thento correct the structure to a predetermined attitude relative togravity; the controller being configured to automatically select betweendifferent jack grounding procedures, the selection being based on whichgrounding procedure is preferable in view of initial conditions of thestructure whose attitude is to be corrected.
 15. An assembly forcorrecting the attitude of a structure by operating jacks that extendfrom the structure to contact a support surface before being selectivelyextended to correct the attitude of the structure, the assemblycomprising: a controller configured to connect to and command operationof the jacks; a tilt sensor connected to the controller and configuredto be supported on the structure, the tilt sensor being configured toprovide signals to the controller representing the attitude of thestructure, the controller being additionally configured to receive anduse those signals to initially ground the jacks and then to correct thestructure to a predetermined attitude relative to gravity; thecontroller being configured to infer jack ground contact based on tiltangle changes sensed by the tilt sensor.
 16. A method for analyzing theattitude of a structure relative to two axes; the method comprising thesteps of: providing a structure to be leveled, the structure including afirst set of at least two levelers and a second set of at least twolevelers actuable to level the structure relative to a calibratedreference attitude; providing a leveling assembly including a tiltsensor on the structure to be leveled; determining whether the structureis in an initial attitude that is within an initial allowable range ofattitudes from which the levelers will be able to level the structure;retracting the levelers; extending one of the first and second sets oflevelers until the one set of levelers contacts the ground; extendingthe other of the first and second sets of levelers until the other setcontacts the ground; extending the individual levelers in apredetermined order until each leveler is applying a predeterminedminimum force value to the ground; determining a first of the two axesabout which the structure is most out of level; extending the individuallevelers in a predetermined order until the structure is level about thefirst axis; and extending the individual levelers in a predeterminedorder until the structure is level about the other of the two axes. 17.The method of claim 16 in which: the step of providing the structureincludes providing a motor vehicle having an air suspension includingsuspension air bags; and an additional step of deflating the suspensionair bags is included before extending the first and second sets oflevelers until they contact the ground.
 18. The method of claim 16 inwhich the step of providing an assembly includes providing a controlleroptionally configurable to command suspension air bag deflation.
 19. Themethod of claim 16 in which the step of providing an assembly includesproviding a controller configured to sense ground contact in response tosignals from the tilt sensor indicating a change in tilt angle of thestructure.
 20. A method for maintaining a structure in a desiredattitude; the structure including jacks actuable to change the attitudeof the structure; the method including the steps of: providing anattitude correction assembly on the structure, the attitude correctionassembly including a tilt sensor; monitoring the attitude of thestructure by monitoring signals from the tilt sensor; and correcting theattitude of the structure by actuating the jacks in response to signalsfrom the tilt sensor, which indicate that a difference between desiredand actual attitude of greater than a predetermined magnitude hasexisted for longer than a predetermined period of time.
 21. The methodof claim 20 in which the steps of leveling the structure includeoperator inputs in the form of actuating respective switchescorresponding to the respective indications and the respective levelersrequired to level the structure about respective selected axes.
 22. Themethod of claim 21 in which the step of leveling the structure about thefirst axis includes disabling switches that do not correspond tolevelers required to level the structure about the first axis.
 23. Amethod for analyzing the attitude of a structure relative to two axes;the method comprising the steps of: providing a structure to be leveled,the structure including first and second sets of levelers actuable tochange the attitude of the structure relative to a calibrated referenceattitude; providing a leveling assembly on the structure; determiningwhether the structure is in an initial attitude that is within aninitial allowable range of attitudes from which the levelers will beable to level the structure; retracting the levelers; extending one ofthe first and second sets of levelers until the one set of levelerscontacts the ground; extending the other of the first and second sets oflevelers until the other set contacts the ground; extending theindividual levelers in a predetermined order until each leveler isapplying a predetermined minimum force value to the ground; determiningwhich of the two axes need to be leveled; indicating to an operator theaxes about which the structure is out-of-level; determining about whichof the two axes the structure is most out-of-level; indicating to anoperator a first axis about which the structure is most out-of-level;leveling the structure about the first axis by operating appropriatelevelers in response to an operator input; and where the structure isout-of-level about the remaining axis, leveling the structure about theremaining axis by operating appropriate levelers in response to anoperator input.
 24. The method of claim 23 in which the step of levelingthe structure about the remaining axis includes disabling switches thatdo not correspond to levelers required to level the structure about theremaining axis.
 25. The method of claim 23 in which: the step ofleveling the structure about the first axis includes disabling operatorinputs once the structure has been leveled about the first axis within apredetermined tolerance; and the step of leveling the structure aboutthe remaining axis includes disabling operator inputs once the structurehas been leveled about the remaining axis to within a predeterminedtolerance.
 26. A method for calibrating an attitude correction assemblyto recognize when a selected portion of a structure the assembly isinstalled on is in a desired attitude relative to gravity; the methodcomprising the steps of: providing a structure including jacks actuableto change the attitude of the structure; providing an attitudecorrection assembly on the structure, the assembly including acontroller and a tilt sensor, the controller programmed to include azero mode in which the controller is ready to receive a signal that willinstruct the controller to recognize signal values being received fromthe tilt sensor as indicating that a selected portion of the structureis in a desired attitude; providing an attitude indicator on theselected portion of the structure, the attitude indicator configured toindicate attitude relative to gravity; actuating the jacks until theattitude indicator indicates that the selected portion of the structureis in a desired attitude relative to gravity; and providing an input tothe controller indicating that the current set of signals being receivedfrom the tilt sensor is the set of signal values that will represent thecorrect attitude for the controller to reference in future attitudecorrection operations.
 27. The method of claim 26 in which: the step ofproviding an attitude correction assembly includes programming thecontroller to enter the zero mode when power is first applied to thecontroller; and an additional step of applying electrical power to theattitude correction assembly and is included before the step ofproviding an input to the controller.
 28. The method of claim 26 inwhich the step of providing an attitude correction assembly includesproviding an indicator and programming the controller to indicatethrough the indicator when the controller is in the zero mode.
 29. Anassembly for correcting the attitude of any selected portion astructure, the assembly comprising: a controller configured to connectto and control one or more jacks operable to change the attitude of astructure; and a proportional tilt sensor connected to the controllerand configured to be supported on the structure, the tilt sensor beingconfigured to provide signals to the controller that represent thedegree of longitudinal pitch and lateral roll of a portion of thestructure the sensor is connected to, the controller being additionallyconfigured to move a selected portion of the structure into a desiredattitude by commanding movement of the entire structure into an attitudewhere the tilt sensor signals match a pre-selected reference valuecorresponding to the desired attitude of the selected portion of thestructure.
 30. An assembly as defined in claim 29 in which the signalsare analog signals.
 31. An assembly as defined in claim 29 in which thecontroller is configured to correct the attitude of the structurerelative to a calibrated sensitivity factor.
 32. An assembly as definedin claim 29 in which the reference value is defined by a set of tiltsensor signal values that the controller recognizes as indicating thatthe selected portion of the structure is in the desired attitude.
 33. Anassembly as defined in claim 29 in which the controller is configured todetect jack ground contact from a change in tilt angle.
 34. An assemblyfor correcting the attitude of a structure, the assembly comprising: acontroller configured to connect to and control one or more jacksoperable to change the attitude of a structure; and a proportional tiltsensor connected to the controller and configured to be supported on thestructure, the tilt sensor being configured to provide signals to thecontroller that represent the degree of longitudinal pitch and lateralroll of the structure the sensor is connected to, the controller beingadditionally configured to use signals from the tilt sensor to detectjack ground contact.
 35. A method for analyzing the attitude of astructure relative to two axes; the method comprising the steps of:providing a structure including jacks actuable to change the attitude ofthe structure; providing a tilt sensor on the structure; extending oneor more jacks until one or more of the jacks contact the ground; anddetecting jack ground contact through tilt sensor indications of achange in the attitude of the structure resulting from jack groundcontact.